package com.epoint.clubmanagement.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.epoint.clubmanagement.entity.Club;
import com.epoint.clubmanagement.vo.ClubVO;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;
import java.util.List;

/**
 * Title: IClubService
 * Description: 俱乐部的service接口
 *
 * @author sqn
 * @version 1.0.0
 * @date 2021/3/17 0017 下午 12:13
 */
@Validated
public interface IClubService extends IService<Club> {

    /**
     * 分页查询俱乐部数据
     *
     * @param pageNum  第几页
     * @param pageSize 每页多少条数据
     * @param param    查询参数-俱乐部名称
     * @return
     */
    public IPage<Club> selectClubPage(int pageNum, int pageSize, String param);

    /**
     * 分页查询俱乐部数据
     *
     * @param pageNum  第几页
     * @param pageSize 每页多少条数据
     * @param param    查询参数-俱乐部名称
     * @return
     */
    public IPage<ClubVO> selectClubVOPage(int pageNum, int pageSize, String param);


    /**
     * 新增一条俱乐部信息
     *
     * @param club
     * @return
     */
    public int addClub(@Valid Club club);

    /**
     * 修改一条俱乐部信息
     *
     * @param club
     * @return
     */
    public int editClub(@Valid Club club);

    /**
     * 根据主键id查询一个俱乐部对象
     *
     * @param id
     * @return
     */
    public Club queryClubById(Integer id);

    /**
     * 根据主键id删除一个俱乐部对象
     *
     * @param id
     * @return
     */
    public int delClubById(Integer id);

    /**
     * 查询所有俱乐部
     *
     * @return
     */
    public List<Club> queryClubList();

    /**
     * 校验名称重复
     *
     * @param club
     * @return
     */
    public int checkNameRepeatInsert(@Valid Club club);

    /**
     * 校验名称重复
     *
     * @param club
     * @return
     */
    public int checkNameRepeatUpdate(@Valid Club club);

}
